import request from '@/utils/request'
import requestFile from '@/utils/requestFile.js'
const baseUrl = '/cz-rentbox/api/v1/rentOrders' // 租箱服务--订单管理

// 租箱订单新增提箱城市
export const updateCityPriceOrderInfo = (id:any,data: any) => {
  return request({
    url: baseUrl+ '/'+ id + '/updateCityPriceOrderInfo',
    method: 'PUT',
    data: data
  })
}

// import { updateOrderInfo } from '@/api/orderManage/index'
// 集装箱公司查询出租箱超期费
export const rentOrders = (data: any) => {
  return request({
    url:'/cz-rentbox/api/v1/rentOrders',
    method: 'DELETE',
    data: data
  })
}
// 集装箱公司订单状态
export const boxEastStatusCount = (data: any) => {
  return request({
    url: baseUrl+'/boxEastStatusCount',
    method: 'POST',
    data: data
  })
}

// 集装箱公司订单状态
export const agentStatusCount = (data: any) => {
  return request({
    url: baseUrl+'/agentStatusCount',
    method: 'POST',
    data: data
  })
}

// 集装箱公司查询出租箱超期费
export const boxRentOrderDetentionChargePage = (data: any) => {
  return request({
    url: baseUrl+'/boxRentOrderDetentionChargePage',
    method: 'POST',
    data: data
  })
}
// 集装箱公司确认收取超期费
export const paymentBoxRentOrderDetentionCharge = (data: any) => {
  return request({
    url: baseUrl+'/paymentBoxRentOrderDetentionCharge',
    method: 'PUT',
    data: data
  })
}
// 集装箱公司导出超期费
export const exportBoxReturnBoxListDetail = (data: any) => {
  return requestFile({
    responseType: 'blob',
    url: baseUrl+'/exportBoxReturnBoxListDetail',
    method: 'POST',
    data: data
  })
}

//货代查询订单超期费
export const agentRentOrderDetentionChargePage = (data: any) => {
  return request({
    url: baseUrl+'/agentRentOrderDetentionChargePage',
    method: 'POST',
    data: data
  })
}
// 货代导出超期费
export const exportAgentReturnBoxListDetail = (data: any) => {
  return requestFile({
    responseType: 'blob',
    url: baseUrl+'/exportAgentReturnBoxListDetail',
    method: 'POST',
    data: data
  })
}

//批量提箱完成
export const carryFinish = (data: Array<any>) => {
  return request({
    url: baseUrl+'/carryFinish',
    method: 'PUT',
    data: data
  })
}

/*货代 订单列表
* @param {String} orderNo 订单号
* @param {Long} carryCityId 提箱城市Id
* @param {Long} returnCityId 还箱城市Id
* @param {String} beginCreateTime endCreateDate 下单日期
* @param {String} beginPlanPickupDate  endPlanPickupDate 预计提箱日期 
* @param {Integer} status 订单状态 / 5-已下单|待开提箱单 10-待提未付|待提未收 15-已提未付|已提未收 20-待还未付|待还未收 25-待还已付|待还已收 30-已完成 35-已取消
*/
export const getTable = (data: any) => { 
  return request({
    url: baseUrl+'/agentPage',
    method: 'POST',
    data: data
  })
}

 

/* 订单详情
* @param {Long} id 订单Id
*/
export const getOrderInfo = (id: any) => {
  if (!id) return  Promise.resolve()
  return request({
    url: baseUrl+'/'+id,
    method: 'get',
  })
}

/*货代 新增订单
* @param {number} releaseRentId 发布租箱的Id
* @param {String} planPickupDate 预计提箱日期
* @param {number} boxType 箱型
* @param {number} boxCondition 箱况
* @param {number} boxQuantity  箱量
* @param {number} paymentMethod 付款方式
* @param {String} contacts 联系人
* @param {String} tel 联系电话
* @param {String} leaveMsg 留言 ~ 非必填
* @param {String} allocation 订单分配
*/
export const agentAddOrder = (data: any) => {
  return request({
    url: baseUrl+'/agentAddOrder',
    method: 'POST',
     data: data
//     data:{
//     "releaseRentId":1800816219941695501,
//     "planPickupDate":"2024-06-12T18:21:19",
//     "boxType":5,
//     "boxCondition":5,
//     "boxQuantity":2,
//     "paymentMethod":5,
//     "contacts":"李世民",
//     "tel":"112345608765432345",
//     "leaveMsg":"留言",
//     "allocation":"[{\"operateUserId\": 1,\"operateUserName\": \"操作员\",\"businessUserId\": 2,\"businessUserName\": \"业务员\",\"businessNo\": \"NO1234567890\"}]" 
// }
  })
}

/*订单:集装箱公司新增订单
* POST {{baseUrl}}/boxEastAddOrder
* @param {number} releaseRentId 发布租箱的Id
* @param {String} planPickupDate 预计提箱日期
* @param {number} boxType 箱型
* @param {number} boxCondition 箱况
* @param {number} boxQuantity  箱量
* @param {number} paymentMethod 付款方式
* @param {String} contacts 联系人
* @param {String} tel 联系电话
* @param {String} leaveMsg 留言 ~ 非必填
* @param {String} allocation 订单分配
*/
export const boxEastAddOrder = (data: any) => {
  return request({
    url: baseUrl+'/boxEastAddOrder',
    method: 'post',
     data: data
//     data:{
//     "releaseRentId":1800816219941695501,
//     "planPickupDate":"2024-06-12T18:21:19",
//     "boxType":5,
//     "boxCondition":5,
//     "boxQuantity":2,
//     "paymentMethod":5,
//     "contacts":"李世民",
//     "tel":"112345608765432345",
//     "leaveMsg":"留言",
//     "allocation":"[{\"operateUserId\": 1,\"operateUserName\": \"操作员\",\"businessUserId\": 2,\"businessUserName\": \"业务员\",\"businessNo\": \"NO1234567890\"}]" 
// }
  })
}

/*
### 修改租箱信息:2024-12-16 汇总所有修改成一个接口
## PUT  {{baseUrl}}/{id}/updateOrderInfo
*/
export const updateOrderInfo = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/updateOrderInfo',
    method: 'PUT',
    data: data,
    // data:{
    // "unitPrice":12345.3,
    // "rate":7.2,
    // "currency":"CNY",
    // "boxUsagePeriod":60,
    // "boxEastOperatorUserId":21,
    // "boxEastOperatorUserName":"张三丰",
    // "boxEastOperatorUserAreaCode":"86",
    // "boxEastOperatorUserTel":"13112345678"
    // }
  })
}

/*修改租箱价格
* @param {number} id 主键
* @param {number} unitPrice 单价
*/
export const updateBoxPrice = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/updateUnitPrice',
    method: 'PUT',
    data: data,
    // data:{
    // "unitPrice":12345.3
    // }
  })
}

// 修改租箱订单箱使期
// PUT  {{baseUrl}}/rentOrders/{id}/updateBoxUsagePeriod
// PUT {{baseUrl}}/rentOrders/1803670668733194241/updateBoxUsagePeriod
// Authorization:{{token}}
// content-type: application/json
export const updateBoxUsagePeriod = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/updateBoxUsagePeriod',
    method: 'PUT',
    data: data,
    // data:{
    // "boxUsagePeriod":88
    // }
  })
}
 

/*修改租箱汇率
* @param {number} id 主键
* @param {number} rate 汇率
* @param {string} targetCurrency 币种 默认美元USD
*/
export const updateBoxRate = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/updateRate',
    method: 'PUT',
    data: data,
    // data: {
    // "id":1803670668733194241,
    // "rate":7.0,
    // "targetCurrency":"USD"
    // }
  })
}

/*取消订单
* @param {number} id 主键 
*/
export const cancelOrder = (data:object) => {
  return request({
    url: baseUrl+'/'+data.id + '/stopOrder',
    method: 'PUT',
    data: data,
    // data:{
    //   "id":1803670668733194241,
    //   "remark":"取消订单"
    // }
  })
}

/*修改租箱订单实付金额
* @param {number} id 主键 
* @param {number} actualPayAmount 实付金额
*/
export const updateActualPayAmount = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/updateActualPayAmount',
    method: 'PUT',
     data: data,
    // data:{
    //   "id":1803670668733194241,
    //   "actualPayAmount":12345 //实付金额
    // }
  })
}

/*货代申请发票
* @param {number} id 主键
* @param {number} invoiceType 发票类型 5-增值税普通发票  10-增值税专用发票
* @param {string} invoiceTitle 发票抬头
* @param {string} invoiceTaxNum 纳税人识别号
*/
export const applyInvoice = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/applyInvoice',
    method: 'PUT',
     data: data,
    // data:  {
    // "id":1803670668733194241,
    // "invoiceType":5,
    // "invoiceTitle":"河南亚航国际货运代理有限公司",
    // "invoiceTaxNum":"91410105671693661Y"
    // }
  })
}

/*集装箱公司开发票
* @param {number} id 主键
* @param {string} invoiceUrl 文件地址
*/
export const toIssueInvoice = (data: any) => {
  return request({
    url: baseUrl+'/'+data.id + '/toIssueInvoice',
    method: 'PUT',
     data: data,
    // data: {
    // "id":1803670668733194241,
    // "invoiceUrl":"[{\"name\":\"20240612/cddd81a833c64a7eab1da5c0aef8dfaf.docx\",\"originalFileName\":\"国际贸易供应链数字平台需求分析(1).docx\",\"url\":\"http://47.122.3.254:9000/default/20240612/cddd81a833c64a7eab1da5c0aef8dfaf.docx\"}]"
    // }
  })
}


/*
# 还箱:集装箱公司查询自己的订单列表
# POST {{baseUrl}}/rentOrders/boxEastSelectReturnOrderList
*/
export const boxEastSelectReturnOrderList = (data: any) => {
  return request({
    url: baseUrl+ '/boxEastSelectReturnOrderList',
    method: 'POST',
     data: data,
    // data: { "orderIds":[123,1231] }
  })
}


// ### 租箱订单申请退款
// ## PUT  {{baseUrl}}/rentOrders/applyRefundRentOrderById
// PUT {{baseUrl}}/rentOrders/applyRefundRentOrderById
// Authorization:{{token}}
// Content-Type: application/json

export const applyRefundRentOrderById = (data: any) => {
  return request({
    url: baseUrl+ '/applyRefundRentOrderById',
    method: 'PUT',
     data: data,
  //   data:{
  // "rentOrder": "[{\"id\": 1803633694563508226,\"refundQuantity\": 1},{\"id\": 1803636788957421570,\"refundQuantity\": 1}]",
  // "couponAmount": 0,
  // "remark": "备注退款原因"
  //  }
  })
}
 
/*
# ### 货代租箱订单:导出Excel文件
# POST {{baseUrl}}/rentOrders/exportAgentRentOrder
#输入参数:
# orderIds 订单Ids
#输出参数:
# 文件流的形式
*/
export const exportAgentRentOrder  = (orderIds: any) => {
  return requestFile({
    responseType: 'blob',
    url: baseUrl+ '/exportAgentRentOrder',
    method: 'POST',
     data: {
        "orderIds": orderIds
    }, 
  })
}

/*
# ### 集装箱公司租箱订单:导出Excel文件
# POST {{baseUrl}}/rentOrders/exportBoxEastRentOrder
#输入参数:
# orderIds 订单Ids
#输出参数:
# 文件流的形式
*/
export const exportBoxEastRentOrder = (orderIds: any) => {
  return request({
    responseType: 'blob',
    url: baseUrl+ '/exportBoxEastRentOrder',
    method: 'POST',
    data: {
        "orderIds": orderIds
    },
    //  data: {
    //     "orderIds": [
    //         1813100172601262082,1813411122948669442
    //      ]
    // }
  })
}



//  RentOrderBean 字段说明
//  private Long id;

//  /**
//       * 订单号
//       */
//      private String orderNo;

//      /**
//       * 集装箱公司Id
//       */
//      private Long companyId;

//      /**
//       * 集装箱公司名称
//       */
//      private String companyName;

//      /**
//       * 租赁集装箱货代公司Id
//       */
//      private Long agentId;

//      /**
//       * 租赁集装箱货代公司名称
//       */
//      private String agentName;

//      /**
//       * 提箱城市Id
//       */
//      private Long carryCityId;

//      /**
//       * 提箱城市名称
//       */
//      private String carryCityName;

//      /**
//       * 提箱国家Id
//       */
//      private Long carryCountryId;

//      /**
//       * 提箱国家名称
//       */
//      private String carryCountryName;

//      /**
//       * 还箱城市Id
//       */
//      private Long returnCityId;

//      /**
//       * 还箱城市名称
//       */
//      private String returnCityName;

//      /**
//       * 还箱国家Id
//       */
//      private Long returnCountryId;

//      /**
//       * 还箱国家名称
//       */
//      private String returnCountryName;

//      /**
//       * 预计提箱日期
//       */
//      private LocalDateTime planPickupDate;

//      /**
//       * 箱使期
//       */
//      private Integer boxUsagePeriod;

//      /**
//       * 超期费币种 CNY:人民币 USD:美元 默认美元
//       */
//      private String overdueFeeCurrency;

//      /**
//       * 超期一天的费用 /箱/天
//       */
//      private Double overdueFeeDay;

//      /**
//       * 结算账期 /天提后多少天支付
//       */
//      private Integer period;

//      /**
//       * 灭失天数
//       */
//      private Integer lossDay;

//      /**
//       * 灭失费
//       */
//      private Double lossFee;

//      /**
//       * 箱型
//       */
//      private Integer boxType;

//      /**
//       * 箱况
//       */
//      private Integer boxCondition;

//      /**
//       * 箱数量
//       */
//      private Integer boxQuantity;

//      /**
//       * 单价
//       */
//      private Double unitPrice;

//      /**
//       * 币种 CNY:人民币 USD:美元 默认人民币
//       */
//      private String currency;

//      /**
//       * 订单金额(合计)
//       */

//      private Double amount;

//      /**
//       * 优惠券金额
//       */
//      private Double couponAmount;

//      /**
//       * 实付金额
//       */
//      private Double actualPayAmount;

//      /**
//       * 汇率
//       */
//      private Double rate;

//      /**
//       * 目标币种 CNY:人民币 USD:美元 默认人民币
//       */
//      private String targetCurrency;

//      /**
//       * 折算币种实付金额
//       */
//      private Double conventAmount;

//      /**
//       * 订单状态  5-已下单|待开提箱单 10-待提未付|待提未收 15-已提未付|已提未收 20-待还未付|待还未收 25-待还已付|待还已收 30-已完成 35-已取消
//       */
//      private Integer status;

//      /**
//       * 支付方式 5-对公转账  10-在线支付
//       */
//      private Integer paymentMethod;

//      /**
//       * 联系人
//       */
//      private String contacts;

//      /**
//       * 联系人电话
//       */
//      private String tel;

//      /**
//       * 留言
//       */
//      private String leaveMsg;

//      /**
//       * 订单分配(操作员、业务员)
//       */
//      private String allocation;

//      /**
//       * 货代支付的电子回执单URL
//       */
//      private String payUrl;

//      /**
//       * 支付日期
//       */
//      private LocalDateTime payDate;

//      /**
//       * 发票类型 5-增值税普通发票  10-增值税专用发票
//       */
//      private Integer invoiceType;

//      /**
//       * 发票抬头
//       */
//      private String invoiceTitle;

//      /**
//       * 纳税人识别号
//       */
//      private String invoiceTaxNum;

//      /**
//       * 发票路径URL
//       */
//      private String invoiceUrl;

//      /**
//       * 发票状态 5-未申请 10-待开票 15-已开票
//       */
//      private Integer invoiceStatus;

//      /**
//       * 开票日期
//       */
//      private LocalDateTime invoiceDate;

